
// 提示
export function message(text){
	uni.showToast({
		title: text,
		icon: 'none',
		duration: 1500
	})
}

// 跳转 config.params:传递的参数
export function navigateTo(config = {}){
	if(config.params) {
		let queryStr = ''
		for(let key in config.params){
			if(Object.prototype.toString.call(config.params[key]) === '[object Object]') {
				config.params[key] = JSON.stringify(config.params[key])
			}
			queryStr += `${key}=${config.params[key]}&`
		}
		config.url = config.url + '?' + queryStr.slice(0, -1)
	}
	uni.navigateTo(config)
}

// 跳转 config.params:传递的参数
export function redirectTo(config = {}){
	if(config.params) {
		let queryStr = ''
		for(let key in config.params){
			if(Object.prototype.toString.call(config.params[key]) === '[object Object]') {
				config.params[key] = JSON.stringify(config.params[key])
			}
			queryStr += `${key}=${config.params[key]}&`
		}
		config.url = config.url + '?' + queryStr.slice(0, -1)
	}
	let time = config.duration || 0
	uni.redirectTo(config)
}


// 跳转 config.params:传递的参数
export function reLaunch(config = {}){
	if(config.params) {
		let queryStr = ''
		for(let key in config.params){
			if(Object.prototype.toString.call(config.params[key]) === '[object Object]') {
				config.params[key] = JSON.stringify(config.params[key])
			}
			queryStr += `${key}=${config.params[key]}&`
		}
		config.url = config.url + '?' + queryStr.slice(0, -1)
	}
	let time = config.duration || 0
	uni.reLaunch(config)
}


export function navigateBack (){
	setTimeout(() => {
		uni.navigateBack()
	}, 1500)
}

// 设置消息浮标 最多三位
export function setTabBar (number = 0){
	if(number > 0){
		uni.setTabBarBadge({
		    index: 2,//下标为2的tabbar 更多请查看uinapp
		    text: number + '',
		  })
	}else{
		uni.removeTabBarBadge({
			index: 2,
			fail(err){
				return
			}
		})
	}
	
}

// 过滤对象的空属性
export const filterObj = function(target) {
	let obj = {}
	for (let key in target) {
		if (target[key] && target[key] != null) {
			obj[key] = target[key]
		}
	}
	return obj
}

// 对象深拷贝
export const deepCopy = function(target){
  let result = Array.isArray(target) ? [] : {}
  for(let key in target) {
      if(target.hasOwnProperty(key) && target[key] != null){
          if(typeof target[key] === 'object') {
              result[key] = deepCopy(target[key])
          }else{
              result[key] = target[key]
          }
      }
  }
  return result
}


export const getObjType = obj => {
	var toString = Object.prototype.toString
	var map = {
		'[object Boolean]': 'boolean',
		'[object Number]': 'number',
		'[object String]': 'string',
		'[object Function]': 'function',
		'[object Array]': 'array',
		'[object Date]': 'date',
		'[object RegExp]': 'regExp',
		'[object Undefined]': 'undefined',
		'[object Null]': 'null',
		'[object Object]': 'object'
	}
	if (obj instanceof Element) {
		return 'element'
	}
	return map[toString.call(obj)]
}
